// 错误处理工具
export default class ErrorHandler {
  static handleError(error, context = '') {
    console.error(`[${context}] 错误:`, error);
    
    // 在真机环境下，避免过多的错误日志
    if (typeof wx !== 'undefined') {
      try {
        wx.showToast({
          title: '操作失败，请重试',
          icon: 'none',
          duration: 2000
        });
      } catch (toastError) {
        console.warn('显示错误提示失败:', toastError);
      }
    }
  }

  static safeExecute(fn, context = '') {
    try {
      return fn();
    } catch (error) {
      this.handleError(error, context);
      return null;
    }
  }

  static async safeExecuteAsync(fn, context = '') {
    try {
      return await fn();
    } catch (error) {
      this.handleError(error, context);
      return null;
    }
  }

  // 检查微信API是否可用
  static isWxApiAvailable(apiName) {
    return typeof wx !== 'undefined' && wx[apiName];
  }

  // 安全的微信API调用
  static safeWxApiCall(apiName, params = {}) {
    if (!this.isWxApiAvailable(apiName)) {
      console.warn(`微信API ${apiName} 不可用`);
      return false;
    }

    try {
      wx[apiName](params);
      return true;
    } catch (error) {
      this.handleError(error, `微信API调用: ${apiName}`);
      return false;
    }
  }
} 